package String;

/**
 * @author 孤雪唯方
 * @date 2025/05/17
 * @description 字符串转换
 */
public class StringConversion {
    /**
     * 类型转换
     */
    public static void typeConversion() {
        //将其他类型转换为字符串
        String str1 = String.valueOf(123);
        String str2 = String.valueOf(true);
        String str3 = String.valueOf(3.14);
        String str4 = String.valueOf(new char[]{'h', 'e', 'l', 'l', 'o'});
        String str5 = String.valueOf(new Person("Tom", 20));//此处会default调用toString方法，即如Person未重写toString方法，所以会调用Object的toString方法，返回getClass().getName() + "@" + Integer.toHexString(hashCode())，即String.Person@4554617c，当Person重写toString方法时，返回自定义的字符串，如：Person [name=Tom, age=20]。
        System.out.println(str1);
        System.out.println(str2);
        System.out.println(str3);
        System.out.println(str4);
        System.out.println(str5);

        //将字符串转换为其他类型
        int num1 = Integer.parseInt("123");
        boolean bool1 = Boolean.parseBoolean("true");
        double double1 = Double.parseDouble("3.14");
        System.out.println(num1);
        System.out.println(bool1);
        System.out.println(double1);
    }

    /**
     * 大小写转换
     */
    public static void caseConversion() {
        String str1 = "Hello World";
        String str2 = str1.toLowerCase();//将字符串全部转换为小写
        String str3 = str1.toUpperCase();//将字符串全部转换为大写
        System.out.println(str1);
        System.out.println(str2);
        System.out.println(str3);
    }

    /**
     * 格式化
     */
    public static void format(){
        String str1 = String.format("Hello %s, your age is %d", "Tom", 20);
        String str2 = String.format("%d年-%02d月-%02d日", 2021, 5, 17);
        System.out.println(str1);
        System.out.println(str2);
    }

    public static void main(String[] args) {
        typeConversion();
        caseConversion();
        format();
    }
}
